import {defineStore} from 'pinia'

//配置式写法，类似vue2，三个配置块分别是数据，计算，监听
/*export const useTalkStore=defineStore("talk",{
    actions:{
        add(obj){
            this.list.push(obj)
        }
    },
    state() {
        return{
            list:[
                {id:"1",title:"第一句话"},
                {id:"2",title:"第二句话"},
                {id:"3",title:"第三句话"}
            ]
        }
    },
})*/

//组合式写法，类似vue3，所有都写在一个函数里，最后将数据和方法return出去，推荐这种
//需要注意的是，无论store的ts怎么写，在vue的调用是一样的，引入，解构
import {reactive} from 'vue'
import axios from "axios";
import {nanoid} from 'nanoid'
export const useTalkStore=defineStore("talk",()=>{
    let list=reactive([
        {id:"1",title:"第一句话"},
        {id:"2",title:"第二句话"},
        {id:"3",title:"第三句话"}
    ])

    async function add(){
        let {data:{content:title}}=await axios.get('https://api.uomg.com/api/rand.qinghua?format=json')
        let obj={id:nanoid(),title}
        list.push(obj)
    }

    return{list,add}
})